#include <stdio.h>

int main()
{
    // FILE *fp = fopen("test.txt", "r"); // 文件指针
    // FILE *fp = fopen("test.txt", "w+"); // 文件指针
    FILE *fp = fopen("test.txt", "a+"); // 文件指针
    //  r:只读 r+:读写 如果文件不存在则打开失败
    //  w:只写 w+:读写 如果文件不存在则创建，如果文件存在则清空
    //  a:追加 a+:追加读写 如果文件不存在则创建

    if (fp == NULL)
    {
        perror("fopen");
        return -1;
    }

    // printf("%p\n", fp);

    char buf[14] = {"0000helloworld"};

    int ret = fwrite(buf, 2, 7, fp); // 写入文件
    // fwrite(要写入的数据, 每个数据的大小, 写入数据的个数, 文件指针)
    printf("ret = %d %s\n", ret, buf);

    int res1 = feof(fp);   // 判断是否到达文件末尾    0:不正常结束 1:正常结束
    int res2 = ferror(fp); // 判断是否出错           0:未出错 1:出错

    printf("res1 = %d res2 = %d\n", res1, res2);

    fseek(fp, 0, SEEK_SET); // 将文件指针移动到文件开头

    char buf1[100] = {0};
    int read_ret1 = fread(buf1, 1, 11, fp); // 读取文件

    printf("ret1 = %d %s\n", read_ret1, buf1);

    fclose(fp);
}